package com.skivingcloud.admin.sys.service;

import com.skivingcloud.admin.sys.entity.SysOrg;
import com.skivingcloud.admin.sys.entity.User;
import com.skivingcloud.common.utils.ElTreeUtils;
import com.skivingcloud.common.utils.TreeUtils;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 组织机构表 服务类
 * </p>
 *
 * @author skivingcloud
 * @since 2022-01-29
 */
public interface ISysOrgService extends IService<SysOrg> {

	/**
	 * 根据租户获取机构树
	 * @param tenantId
	 * @return
	 * @throws Exception
	 */
	List<TreeUtils> getAllOrgTreeUtils(String tenantId) throws Exception;

	/**
	 * 获取全量机构树
	 * @return
	 * @throws Exception
	 */
	List<TreeUtils> getAllOrgTreeUtils() throws Exception;

	/**
	 * 新增机构
	 * @param org
	 * @param user
	 */
	void addOrg(SysOrg org, User user);

	/**
	 * 修改机构
	 * @param org
	 * @param user
	 */
	void updateOrg(SysOrg org, User user);

	/**
	 * 删除机构
	 * @param id
	 * @param user
	 */
	void deleteById(String id, User user);

	/**
	 * 根据租户获取机构树
	 * 
	 * @param tenantId
	 * @return
	 * @throws Exception
	 */
	List<ElTreeUtils> getAllOrgTreeUtilsEl(String tenantId) throws Exception;

}
